Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Embodiments relate to software testing, and in particular, to detecting defects in software by identifying location of diverging paths of execution.
Over its lifetime, a software program may be present in a number of different versions. For example, an early version of software comprising a development system may be used for purposes of initial development. Later, another version of the software may be utilized for testing and/or evaluation.
Often, the structure of various software versions (e.g., development system, test system) may differ from each other in subtle ways. In particular, even minor differences in code can substantially impact performance of the software in important ways.
For example, a developer may realize that while a certain software feature works well in one version (e.g., a development system), that same feature may operate differently in a different version (e.g. test system). Unfortunately the task of precisely manually identifying subtle differences in code giving rise to deviation in software performance, can be laborious and expensive.
Moreover, this issue can be exacerbated as software programs become ever more complex. For example, programs for deployment on the cloud may be configured to work with a variety of different client types. Such cloud-based software may thus utilize the combination of different code modules with different versions. Subtle differences in code between those modules can lead to unwanted deviations in performance between versions.